1. Technical Field
The present invention relates in general to rotator circuits in processors and in particular to wiring rotator circuits within a processor. Still more particularly, the present invention relates to minimizing the input routing required in wiring a 64-bit rotator circuit.
2. Description of the Related Art
Rotate operations are special cases of shift operations in which "end-around," the process of copying bits shifted off one end of an operand into the other end, is employed. A simple example of rotating a 64-bit operand is shown in the two lines below, with the operand given in the first line and the result given in the second:
01000011 00011111 01010011 00001110 10110111 01010101 01111101 01001011 PA0 01100011 11101010 01100001 11010110 11101010 10101111 10101001 01101000
The 64-bit operand in the first line has been rotated 5 positions to the left in the second line. Alternate bytes of the "before" operand have been italicized in both lines for emphasis.
In a 64-bit architecture, it is necessary to perform rotate operations which are from 0 to 63 bits in offset. Rotate operations are commonly performed by an array 502 of multiplexer circuits 504 as shown in FIG. 5. Each multiplexer 504 provides the shifting for a single bit position of the output, which requires that the full set of 64 input signals be routed to each multiplexer 504 in array 502 to accomplish a rotate of 0-63 positions. This large number of inputs presents significant wiring challenges in addition to obstacles to efficient use of circuit area.
The most straightforward method for wiring a 64-bit rotator is to route all 64 input to each simple multiplexer structure as shown in FIG. 5. The downside of this approach is that the entire rotator structure would be very short in the vertical dimension and very long in the horizontal dimension--an extremely poor aspect ratio--as a result of forming 64 side-by-side 64-input multiplexers. Additionally, it is impractical to build a circuit primitive providing the functionality of a 64-bit multiplexer utilizing only a single stage of circuitry.
It would be desirable, therefore, to provide a solution to the poor aspect ratio which a 64-bit rotator circuit would naturally tend to assume. It would further be advantageous for the solution to be consistent with use of multiple stage of circuitry for the functionality of a 64-input multiplexer.